package com.fishingwithme.domain.common;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

@Data
@TableName("likes")
public class Likes {

    /**
     * 主键ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long id;

    /**
     * 点赞用户ID（关联用户表）
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 被点赞目标类型（article/comment/video等）
     */
    @TableField("target_type")
    private String targetType;

    /**
     * 被点赞目标ID
     */
    @TableField("target_id")
    private Long targetId;

    /**
     * 点赞时间
     */
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private Date createdAt;

    /**
     * 逻辑删除标识（0-未删除，1-已删除）
     */
    @TableField("is_deleted")
    @TableLogic
    private Integer isDeleted;

    /**
     * 无参构造方法
     */
    public Likes() {
    }

    /**
     * 带参构造方法（用于创建点赞记录）
     */
    public Likes(Long userId, String targetType, Long targetId) {
        this.userId = userId;
        this.targetType = targetType;
        this.targetId = targetId;
    }
}